<?php

namespace App\Console\Commands;

use App\Models\Article;
use Carbon\Carbon;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\File;

class ImportAgreementsFromTemplates extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'agreements:import';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = '从页面模板导入协议内容到数据库';

    /**
     * Execute the console command.
     */
    public function handle()
    {
        $this->info('开始导入协议内容...');

        // 导入用户协议
        $this->importUserAgreement();
        
        // 导入隐私协议
        $this->importPrivacyPolicy();
        
        // 导入付费会员用户服务协议
        $this->importVipServiceAgreement();

        $this->info('协议内容导入完成！');
        
        return 0;
    }

    /**
     * 导入用户协议
     */
    private function importUserAgreement()
    {
        $templatePath = base_path('页面模板/user-agreement.html');
        
        if (!File::exists($templatePath)) {
            $this->error('用户协议模板文件不存在: ' . $templatePath);
            return;
        }
        
        $content = File::get($templatePath);
        
        // 提取协议内容部分
        $contentMatches = [];
        preg_match('/<div class="agreement-content">(.*?)<\/div>\s*<\/div>/s', $content, $contentMatches);
        
        if (empty($contentMatches[0])) {
            $this->error('无法从用户协议模板中提取内容');
            return;
        }
        
        // 创建或更新用户协议文章
        Article::updateOrCreate(
            ['key' => 'user_agreement'],
            [
                'title' => '用户协议',
                'publish_time' => Carbon::now(),
                'description' => '记账助手用户使用协议',
                'content' => $contentMatches[0],
            ]
        );
        
        $this->info('用户协议导入成功');
    }

    /**
     * 导入隐私协议
     */
    private function importPrivacyPolicy()
    {
        // 由于没有现成的隐私协议模板，使用默认内容
        $content = '<div class="agreement-content">
            <h1>隐私协议</h1>
            <p>记账助手（以下简称"我们"）非常重视用户的隐私和个人信息保护。本隐私政策旨在向您说明我们如何收集、使用、存储和共享您的个人信息，以及您享有的相关权利。请您在使用我们的服务前，仔细阅读并了解本隐私政策。</p>
            
            <h2>1. 我们收集的信息</h2>
            <p>为了向您提供记账助手的服务，我们可能会收集以下类型的信息：</p>
            <ul>
                <li><strong>账号信息：</strong>当您注册记账助手账号时，我们会收集您提供的手机号码、用户名等信息。</li>
                <li><strong>财务数据：</strong>您在使用记账助手过程中输入的收支记录、账户信息、预算设置等财务数据。</li>
                <li><strong>设备信息：</strong>我们可能会收集您使用的设备型号、操作系统版本、设备标识符、IP地址等信息。</li>
                <li><strong>使用数据：</strong>您使用记账助手的方式，如访问时间、使用的功能、操作记录等。</li>
            </ul>
            
            <h2>2. 信息的使用</h2>
            <p>我们使用收集到的信息主要用于以下目的：</p>
            <ul>
                <li>提供、维护和改进记账助手的服务</li>
                <li>处理您的账号注册和管理</li>
                <li>响应您的请求和提供客户支持</li>
                <li>向您发送服务通知和更新</li>
                <li>进行数据分析以改善用户体验</li>
                <li>防止欺诈和增强安全性</li>
            </ul>
            
            <h2>3. 信息的共享</h2>
            <p>我们重视您的隐私，不会将您的个人信息出售给第三方。但在以下情况下，我们可能会共享您的信息：</p>
            <ul>
                <li><strong>经您同意：</strong>在获得您的明确同意后，我们可能会与第三方共享您的个人信息。</li>
                <li><strong>服务提供商：</strong>我们可能会与帮助我们提供服务的第三方服务提供商共享信息，如云存储、数据分析服务提供商等。这些服务提供商仅能出于提供服务的目的使用您的信息，并且必须遵守保密义务。</li>
                <li><strong>法律要求：</strong>如果法律要求或为了响应法律程序，保护我们的权利，或保护公众安全，我们可能会披露您的信息。</li>
            </ul>
            
            <h2>4. 信息安全</h2>
            <p>我们采取各种安全措施保护您的个人信息不被未经授权的访问、使用或披露。这些措施包括数据加密、访问控制、安全审计等。但请注意，尽管我们努力保护您的信息安全，但互联网环境并非百分之百安全，我们无法保证您的信息绝对安全。</p>
            
            <h2>5. 您的权利</h2>
            <p>根据适用的法律法规，您可能享有以下权利：</p>
            <ul>
                <li>访问、更正或删除您的个人信息</li>
                <li>限制或反对我们处理您的个人信息</li>
                <li>数据可携带权（获取您提供给我们的信息的副本）</li>
                <li>撤回您的同意（如处理基于同意）</li>
            </ul>
            <p>如您希望行使上述权利，请通过本政策末尾提供的联系方式与我们联系。</p>
            
            <h2>6. 儿童隐私</h2>
            <p>记账助手的服务不面向16岁以下的儿童。如果我们发现自己收集了16岁以下儿童的个人信息，我们会采取措施尽快删除这些信息。如果您认为我们可能收集了您孩子的个人信息，请与我们联系。</p>
            
            <h2>7. 隐私政策的更新</h2>
            <p>我们可能会不时更新本隐私政策。当我们进行重大变更时，我们会在应用内或通过其他方式通知您。我们鼓励您定期查看本政策，以了解我们如何保护您的信息。</p>
            
            <h2>8. 联系我们</h2>
            <p>如果您对本隐私政策有任何疑问、意见或请求，请通过以下方式联系我们：</p>
            <p>电子邮件：privacy@money-record.com</p>
            <p>客服电话：400-888-8888</p>
            
            <p class="agreement-date">本隐私政策更新日期：2023年7月1日</p>
        </div>';
        
        // 创建或更新隐私协议文章
        Article::updateOrCreate(
            ['key' => 'privacy_policy'],
            [
                'title' => '隐私协议',
                'publish_time' => Carbon::now(),
                'description' => '记账助手隐私保护政策',
                'content' => $content,
            ]
        );
        
        $this->info('隐私协议导入成功');
    }

    /**
     * 导入付费会员用户服务协议
     */
    private function importVipServiceAgreement()
    {
        // 由于没有现成的付费会员用户服务协议模板，使用默认内容
        $content = '<div class="agreement-content">
            <h1>付费会员用户服务协议</h1>
            <p>本协议是您与记账助手（以下简称"我们"）之间关于您使用记账助手付费会员服务所订立的协议。本协议包含记账助手付费会员服务的条款和条件，请您在购买和使用付费会员服务前仔细阅读。</p>
            
            <h2>1. 服务定义</h2>
            <p>记账助手付费会员服务（以下简称"会员服务"）是指记账助手为用户提供的高级功能和特权服务，包括但不限于：</p>
            <ul>
                <li>无广告体验</li>
                <li>高级数据分析功能</li>
                <li>更多预算和账本类别</li>
                <li>数据导出功能</li>
                <li>专属客服支持</li>
                <li>其他不定期推出的会员专享功能</li>
            </ul>
            
            <h2>2. 会员费用与支付</h2>
            <p>会员服务为付费服务，我们提供多种会员套餐供您选择，包括月度会员、季度会员和年度会员等。具体价格和支付方式将在购买页面上明确标示。</p>
            <p>您可以通过应用内购买、官方网站或其他授权渠道购买会员服务。支付完成后，我们将在收到付款确认后为您开通相应的会员服务。</p>
            
            <h2>3. 会员期限与续费</h2>
            <p>会员服务的有效期根据您购买的套餐而定。在会员到期前，系统会通过应用内通知、短信或邮件等方式提醒您续费。</p>
            <p>如您开通了自动续费功能，系统将在会员到期前自动从您的支付账户中扣除下一个周期的会员费用。您可以随时在应用内或通过客服取消自动续费功能。</p>
            
            <h2>4. 退款政策</h2>
            <p>除法律法规另有规定外，会员服务一经购买成功，即不支持退款。如遇特殊情况（如服务重大故障导致无法使用），您可以联系客服申请退款，我们将根据具体情况进行处理。</p>
            
            <h2>5. 会员权益</h2>
            <p>会员权益以购买时页面展示的内容为准。我们保留根据市场情况和产品发展调整会员权益的权利。如会员权益发生重大变更，我们会提前通知您。</p>
            <p>会员权益仅限于您本人使用，不得转让、出借或出售给他人使用。如发现账号有异常使用情况，我们有权暂停或终止您的会员服务。</p>
            
            <h2>6. 服务中断与变更</h2>
            <p>我们将尽力确保会员服务的稳定性和可用性，但不能保证服务不会中断或没有故障。对于因不可抗力、系统维护、网络故障等原因导致的服务中断，我们不承担责任。</p>
            <p>我们保留随时变更、中断或终止会员服务的权利。如会员服务发生重大变更或终止，我们会提前通知您，并根据实际情况提供相应的补偿方案。</p>
            
            <h2>7. 用户义务</h2>
            <p>作为付费会员，您应当遵守记账助手的用户协议和相关规定，不得利用会员权益从事任何违法违规活动。如您违反相关规定，我们有权暂停或终止您的会员服务，且不予退款。</p>
            
            <h2>8. 协议修改</h2>
            <p>我们保留随时修改本协议的权利。修改后的协议将在应用内或官方网站公布。如您继续使用会员服务，则视为您接受修改后的协议。如您不同意修改后的协议，应当停止使用会员服务。</p>
            
            <h2>9. 法律适用与争议解决</h2>
            <p>本协议的订立、执行和解释及争议的解决均应适用中华人民共和国法律。如发生本协议相关的任何争议或纠纷，应友好协商解决；协商不成的，任何一方均有权将争议提交至有管辖权的人民法院诉讼解决。</p>
            
            <p class="agreement-date">本协议更新日期：2023年7月1日</p>
        </div>';
        
        // 创建或更新付费会员用户服务协议文章
        Article::updateOrCreate(
            ['key' => 'vip_service_agreement'],
            [
                'title' => '付费会员用户服务协议',
                'publish_time' => Carbon::now(),
                'description' => '记账助手付费会员服务条款',
                'content' => $content,
            ]
        );
        
        $this->info('付费会员用户服务协议导入成功');
    }
}